package com.ray.mapper;

import java.util.List;
import java.util.Map;

 
import org.apache.ibatis.annotations.Param;

import com.ray.bean.CompanyMaterialTableBean;
import com.ray.bean.DutyBean;
import com.ray.bean.FeedOrderDetailBean;
import com.ray.bean.FeedOrderMainBean;
import com.ray.bean.MaterialTreeBean;
import com.ray.bean.OrderBean;
import com.ray.bean.OrderBean.OrderMaterial;
import com.ray.bean.OrderColorBean;
import com.ray.bean.OrderCountBean;
import com.ray.bean.OrderDeatilBean;
import com.ray.bean.OrderFinishMaterialBean;
import com.ray.bean.OrderInfoDetailBean;
import com.ray.bean.OrderInfoDetailSourceAndApplyBean;
import com.ray.bean.OtherReportDeptBean;
import com.ray.bean.OtherWarehouseBean;
import com.ray.bean.ProcessBean;
import com.ray.bean.ProductionExceptionBean;
import com.ray.bean.PurchaseDetailBean;
import com.ray.bean.PurchaseOrderBean;
import com.ray.bean.PurchaseOrderDetailBean;
import com.ray.bean.QueryOrderPageBean;
import com.ray.bean.QueryPurchaseBean;
import com.ray.bean.ReportBean;
import com.ray.bean.WarehouseInOutDetailBean;
import com.ray.bean.WorkshopProductionCycleBean;
import com.ray.exception.ServiceException;
import com.ray.pojo.FeedOrderDetailPojo;
import com.ray.pojo.PurchaseOrderDetailPojo;

public interface OrderMapper {

	//获取订单信息
	List<OrderBean> getOrderDetail(Map map);

	/**
	 * 获取物料颜色
	 * @param orderId(订单编号)
	 * @param machining(加工对象)
	 * @param company(公司)
	 * @param type(类型 0 单物料 1 整架  23 整框整腿)
	 * @param reportMachining(报工对象  颜色或规格)
	 * @param isAllMaterial (是否是交接工序  1 是 2 不是)
	 * @param maList 
	 * @return
	 */
	List<OrderColorBean> getColor(@Param("orderId")String orderId,@Param("machining")String machining,@Param("loginCompany") String company,@Param("type") int type,@Param("reportMachining")String reportMachining,@Param("isAllMaterial") int isAllMaterial,@Param("maList") List<String> maList);

	//订单查询获取订单生产流程
	List<DutyBean> getOrderWork(Map map);

	//获取订单投料数
	long getOrderFieeding(@Param("reportBean")ReportBean reportBean);

	//获取每个框色订单数
	List<OrderBean> getColorCount(@Param("orderId")String orderId);

	//设置可短数
	void setDuanChu(Map map);

	//获取订单信息
	OrderBean getOrderByOrderId(@Param("orderId")String orderId);

	/**
	 * 获取订单物料类型
	 * @param orderId(订单编号)
	 * @param company(公司)
	 * @param isAllMaterial(是否获取所有的物料  0 不是 1 是)
	 * @return
	 */
	List<MaterialTreeBean> getOrderMeType(@Param("orderId")String orderId,@Param("loginCompany") String company,@Param("isAllMaterial") int isAllMaterial);

	//通过订单编号获取投料单信息
	FeedOrderMainBean getFeedOrderMainByOrderId(Map map);

	//插入投料单主数据
	int insertFeedMian(Map map);

	//插入投料单明细
	int insertFeedDetail(Map map);
	
	/**
	 * 单独插入投料单明细 at 2018-03-31 by 李斌
	 * @param map
	 */
	int insertFeedOrderDetailOne(Map map);

	//修改投料单明细数据
	void updateFeedDetail(Map map); 

    //投料单数据数量
	int getFeedOrderDataCount(Map map);

	//获取投料单数据
	List<FeedOrderDetailPojo> getFeedOrderData(Map map);

	//获取投料单号
	List<String> getFeedOrderId(Map map);

	//删除投料单明细
	void deleteAllFeed(@Param("idList") List<String> idList);

	//批量审批投料单 
	void allApprovalFeedOrder(Map map);

	//获取采购单数据
	List<PurchaseOrderBean> getPurchaseOrderData(Map map);
	
	//获取订单列表
	List<Map<String, String>> getOrderList(Map map);
	//获取订单列表数量
	int getOrderListTotalForBusiness(Map map);
	//获取业务单订单列表
	List<Map<String, String>> getOrderListForBusiness(Map map);
	//获取订单列表数量
	int getOrderListTotal(Map map);

	//修改投料单明细为以保存采购单
	int updateFeedDetailIsBuild(Map map);


	//审核采购单 
	void setPurchaseStatus(Map map);
	
	//审核采购单明细状态 at 2018-04-23 by 李斌
	int setPurchaseDetailStatus(Map map);

	//删除采购单
	void deletePurchaseOrder(Map map);

	//获取投料单的物料数据条数
	int getFeedOrderMaterialDateCount(Map map);

	//获取投料你单物料数据
	List<FeedOrderDetailBean> getFeedOrderMaterialDate(Map map);

	//获取单个投料单明细
	FeedOrderDetailBean getFeedOrderDetailOne(@Param("orderId")String orderId, @Param("materialCode")String materialCode, @Param("loginCompany") String loginCompany);

	//获取符合条件订单个数
	OrderCountBean getOrderMainCount(Map map);

	//订单住信息
	List<OrderBean> getOrderMain(Map map);
	//向前修改订单排序
	void updateOrderSortBrfore(Map map);

	//向后修改订单排序
	void updateOrderSortAfter(Map map);

	//获取订单详情信息
	List<QueryOrderPageBean> getOrderInfoDetail(Map map);

	/**
	 * 获取公司物料表
	 */
	List<CompanyMaterialTableBean> getCompanyMaterialTable(Map map);
	/**
	 * 获取公司正在使用的物料信息
	 */
	List<CompanyMaterialTableBean> getCompanyMaterialTableOnRequisition(Map map);
	/**
	 * 获取订单明细表
	 * @param map
	 * @return
	 */
	OrderInfoDetailBean getOrderInfoDetailById(int id);
	/**
	 * 更新订单明细表
	 * @param orderInfoDetail
	 */
	void updateOrderInfoDetail(OrderInfoDetailBean orderInfoDetail);
	/**
	 * 更新部分信息
	* @date 2018年4月21日 上午8:53:40 
	* @author 李斌
	* @return void 
	* @throws
	 */
	void updateOrderInfoDetailById(OrderInfoDetailBean orderInfoDetail);
	/**
	 * 查询出入库明细表的数据条数 at 2018-04-02 by 李斌
	 * @param map
	 * @return
	 */ 
	int getWarehouseInOutDetailDataCount(Map map);
	/**
	 * 查询出入库明细表的数据 at 2018-04-02 by 李斌
	 * @param map
	 * @return 
	 */
	List<WarehouseInOutDetailBean> getWarehouseInOutDetailData(Map map);
	/**
	 * 获取出入库的物料类型通过公司物料表 at 2018-04-02 by 李斌
	 * @param map
	 * @return 
	 */ 
	List<String> getMaterialTypeOnWarehouseInOutDetail(Map map);
	/**
	 * 插入出库数据 at 2018-04-03 by 李斌
	 * @param map
	 */
	boolean insertWarehouseOutDetail(Map map);

	//获取生产订单主表里公司名称
	List<String> getOrderCompany();

	//获取公司下订单物料条数
	List<OrderFinishMaterialBean> getOrderMaterialCount(Map<String, Object> map);

	//修改生产完成的订单状态为-1
	void updateFinishOrderSort(Map<String, Object> map);

	//获取已经设置顺序的订单
	List<OrderBean> getAleradySort(Map<String, Object> map);

	//设置订单生产顺序
	void setOrderSort(Map<String, Object> map);

	//获取没有设置顺序的订单信息
	List<OrderBean> getNotSetSort(Map<String, Object> map);

	//获取本日期之前的顺序最大的订单信息
	OrderBean getMaxSortOrder(OrderBean order);

    //通过交货日期设置订单顺序
	void setOrderSortByJiaoDate(OrderBean order);

	//获取明细入库数量
	Integer getDetailReportCount(QueryOrderPageBean queryOrder);


	//获取查询的采购单的物料信息  通过采购单号或者物料代码查询
	List<QueryPurchaseBean> getPurchaseMaterial(Map map);
	/**
	 * 获取投料单主表信息通过id
	* @date 2018年4月21日 上午8:25:39 
	* @author 李斌
	* @return FeedOrderMainBean 
	* @throws
	 */ 
	String getFeedOrderMainById(String id);
	/**
	 * 获取订单明细表
	* @date 2018年4月21日 上午8:38:07 
	* @author 李斌
	* @return List<OrderInfoDetailBean> 
	* @throws
	 */ 
	List<OrderInfoDetailBean> getOrderInfoDetailByMap(Map<String, String> orderParam);
	/**
	 * 
	* @date 2018年4月21日 下午3:46:36 
	* @author 李斌
	* @return void 
	* @throws
	 */ 

	String getFeedOrderDetailById(String id);
	/**
	 * 修改投料单主表状态通过id
	* @date 2018年4月22日 上午11:00:22 
	* @author 李斌
	* @return int 
	* @throws
	 */ 
	int updateFeedOrderStatusById(Map map);
	
	/**
	 * 通过订单编号和公司获取投料单Id
	* @date 2018年4月23日 下午7:03:54 
	* @author 李斌
	* @return String 
	* @throws
	 */
	String getFeedOrderMainIdByOrderId(Map<String, Object> orderMap);
	
	/**
	 * 修改投料单明细退回到投料单未审核状态
	* @date 2018年4月23日 下午7:15:30 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int updateFeedDetailToUnreviewed(Map map);
	
	/**
	 * 修改投料单数据
	* @date 2018年4月24日 下午5:02:53 
	* @author 李斌
	* @return int 
	* @throws 
	 */
	int updateFeedDetailByStatus(Map map);
	
	/**
	 * 通过采购单明细Id获取采购单明细
	* @date 2018年4月25日 上午8:18:28 
	* @author 李斌
	* @return PurchaseDetailBean 
	* @throws
	 */
	PurchaseDetailBean getPurchaseDetailById(Map map);
	
	/**
	 * 获取投料单采购单对应表信息,通过投料单明细表Id获取
	* @date 2018年4月25日 上午8:08:27 
	* @author 李斌
	* @return PurchaseOrderDetailBean 
	* @throws
	 */
	PurchaseOrderDetailBean getPurchaseOrderDetailByOrderIdAndDetailId(Map map);
	
	/**
	 * 删除采购单明细和采购单投料单对应表 
	* @date 2018年4月25日 上午8:33:48 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int deletePurchaseDetail(Map map);
	
	/**
	 * 根据采购单明细Id获取采购单主表Id
	* @date 2018年4月25日 上午8:51:15 
	* @author 李斌
	* @return String 
	* @throws 
	 */
	String getPurchaseOrderIdByPurchaseDetailId(Map map);
	
	/**
	 * 通过采购单明细表MainId获取采购单数据
	* @date 2018年4月25日 上午8:58:36 
	* @author 李斌
	* @return List<PurchaseDetailBean> 
	* @throws
	 */
	List<PurchaseDetailBean> getPurchaseDetailByMainId(Map map);
	
	/**
	 * 删除采购单主表通过Id
	* @date 2018年4月25日 上午9:04:08 
	* @author 李斌
	* @return int 
	* @throws
	 */ 
	int deletePurchaseOrderById(Map map);
	
	/**
	 * 修改采购单明细信息
	* @date 2018年4月25日 上午10:14:21 
	* @author 李斌
	* @return int 
	* @throws
	 */ 
	int updatePurchaseDetail(Map map);

	/**
	 * 通过id获取投料单明细
	* @date 2018年4月27日 下午6:39:04 
	* @author 李斌
	* @return FeedOrderDetailBean 
	* @throws
	 */
	FeedOrderDetailBean getFeedOrderDetailOneById(String id);
	
	/**
	 * 删除投料单采购单对应表信息通过Id
	* @date 2018年4月27日 下午6:38:50 
	* @author 李斌
	* @return void 
	* @throws
	 */
	void deletePurchaseOrderDetail(String id);
	
	/**
	 * 通过采购单明细Id获取投料单采购单对应表信息
	* @date 2018年4月27日 下午6:39:07 
	* @author 李斌
	* @return List<PurchaseOrderDetailBean> 
	* @throws
	 */
	List<PurchaseOrderDetailBean> getPurchaseOrderDetailByDetailId(Map map);
	
	/**
	 * 通过投料单主表Id和物料代码获取投料单明细
	* @date 2018年4月27日 下午8:46:16 
	* @author 李斌
	* @return FeedOrderDetailBean 
	* @throws
	 */
	List<FeedOrderDetailBean> getFeedOrderDetailByDetail(Map<String, String> orderParamMap);
	
	/**
	 * 审核订单采购单
	* @date 2018年4月28日 上午10:17:17 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int  setPruchaseDetailStatusByOrder(Map map);

	//获取合并出入库数据
	List<WarehouseInOutDetailBean> getinOutSummarylData(Map map);

	//获取合并数据条数
	int getinOutSummaryCount(Map map);

	//获取订单设置的没有合并的车间
	List<WorkshopProductionCycleBean> getOrderSetNoMegerWorkShop(@Param("orderList")List<OrderBean> orderList, @Param("workShop")String workShop);
//	List<WorkshopProductionCycleBean> getOrderSetNoMegerWorkShop(@Param("orderId")String orderId,@Param("loginCompany") String loginCompany,@Param("workShop") Object workShop);

	//获取公司所有的没有合并的车间
	List<WorkshopProductionCycleBean> getCompanyNoMegerWorkShopId(@Param("orderList")List<OrderBean> orderList, @Param("workShop")String workShop);
//	List<WorkshopProductionCycleBean> getCompanyNoMegerWorkShopId(@Param("orderId")String orderId, @Param("loginCompany")String loginCompany,@Param("workShop") Object workShop,@Param("deptId")String deptId);

	//获取车间下的工序
	List<ProcessBean> getProcessByWorkShopId(Map map);
	
	/**
	 * 通过物料代码和投料单明细Id获取投料单采购单对应表
	* @date 2018年5月9日 上午9:40:18 
	* @author 李斌
	* @return List<PurchaseOrderDetailBean> 
	* @throws
	 */
	List<PurchaseOrderDetailBean> getPurchaseOrderDetailByFeedDetailIdAndMaterialCode(Map<String, Object> paramMap);
	
	/**
	 * 修改投料单采购单对应表的
	* @date 2018年5月9日 上午9:56:24 
	* @author 李斌
	* @return void 
	* @throws 
	 */
	void updatePurchaseOrderDetailOnUseCount(PurchaseOrderDetailBean purchaseOrderDetailBean);
	

	/**
	 * 获取订单出库状况
	 * @param map
	 * @return
	 */
	List<Integer> getYuShuList(Map map);
	
	/**
	 * 修改采购数量.当相同订单物料退回时
	* @date 2018年5月11日 上午7:32:52 
	* @author 李斌
	* @return void  
	* @throws
	 */
	void updatePurchaseOrderDetailOnPurchaseCount(PurchaseOrderDetailBean purchaseOrderDetailBean);
	
	/**
	 * 库存采购单查询
	* @date 2018年5月11日 上午10:00:53 
	* @author 李斌
	* @return List<PurchaseOrderBean> 
	* @throws
	 */
	List<PurchaseOrderDetailPojo> getAleradyPurchaseOrderDataByMateral(Map map);
	
	/**
	 * 修改订单采购单对应表数据 
	* @date 2018年5月11日 下午2:19:10 
	* @author 李斌
	* @return void 
	* @throws 
	 */
	void upatePurchaseOrderDetailOnDetailById(Map<String, Object> map);

	//校验其他部门 
	List<String> checkOtherDept(Map map);

	//获取订单报工部门
	List<OtherReportDeptBean> OtherReportDeptBean(Map map);

	//添加其他部门
	void addOtherDept(Map map);
	
	/**
	 * 获取出入库物料名称
	* @date 2018年5月15日 上午8:52:00 
	* @author 李斌
	* @return List<String> 
	* @throws
	 */ 
	List<String> getMaterialNameOnWarehouseInOutDetail(Map map);
	
	/**
	 * 批量修改复期和打印状态
	* @date 2018年5月15日 上午10:01:16 
	* @author 李斌
	* @return void 
	* @throws
	 */
	void updateBatchPurchaseOrderDetail(Map<String, Object> map);
	
	/**
	 * 查询供应商名称通过采购单
	* @date 2018年5月16日 上午8:52:34 
	* @author 李斌
	* @return List<String> 
	* @throws
	 */
	List<String> getProviderNameByPurchaseOrder(Map<String, Object> map);
	
	/**
	 * 获取采购单主表Id
	* @date 2018年5月16日 下午5:18:35 
	* @author 李斌
	* @return String 
	* @throws 
	 */
	String getPurchaseOrderIdByMateiralCodeAndOrderId(Map<String,Object> map);
	
	/**
	 * 获取投料单主表Id
	* @date 2018年5月16日 下午5:26:53 
	* @author 李斌
	* @return String 
	* @throws
	 */
	String getOrderIdOnFeedOrderMain(Map map);
	
	/**
	 * 批量审核采购单
	* @date 2018年5月17日 上午8:31:44 
	* @author 李斌
	* @return void 
	* @throws
	 */
	void setAllPurchaseStatus(Map<String, Object> map);
	
	
	/**
	 * 通过订单编号和物料代码获取投料单明细
	* @date 2018年5月19日 下午2:48:44 
	* @author 李斌
	* @return FeedOrderDetailBean 
	* @throws
	 */ 
	FeedOrderDetailBean getFeedOrderDetailOnMaterialCodeAndOrderId(Map<String,Object> map);
	
	/**
	 * 通过投料单明细Id获取出库数据
	* @date 2018年5月19日 下午3:16:39 
	* @author 李斌
	* @return List<WarehouseInOutDetailBean> 
	* @throws
	 */
	List<WarehouseInOutDetailBean> getWarehouseInOutDetailByFeedDetailId(Map<String, Object> paramMap);
	
	/**
	 * 通过物料代码和订单编号.获取交接至仓库的入库信息 
	* @date 2018年5月21日 下午2:03:04 
	* @author 李斌
	* @return List<WarehouseInOutDetailBean> 
	* @throws
	 */
	List<WarehouseInOutDetailBean> getWarehouseInOutDetailByOrderIdAndMaterailCode(Map<String, Object> paramMap);
	
	/**
	 * 通过订单编号,物料类型,默认仓库
	* @date 2018年5月24日 下午4:29:51 
	* @author 李斌
	* @return List<OrderInfoDetailBean> 
	* @throws 
	 */
	List<OrderInfoDetailBean> getOrderInfoTailByOrderDetail(Map<String, Object> orderMap);
	
	/**
	 * 补全订单信息
	* @date 2018年5月24日 下午4:51:58 
	* @author 李斌
	* @return int 
	* @throws
	 */
	void updateOrderInfoTailById(OrderInfoDetailBean orderInfoTail);

	
	/**
	 * 设置订单车间生产顺序
	 * @param orderId
	 * @param workShopId
	 * @param time
	 * @return
	 * @throws ServiceException
	 */
	void deletetOrderWorkShopTime(Map map);
	void insertOrderWorkShopTime(Map map);

	/**
	 * 修改订单下单日期
	 * @param orderId
	 * @param time
	 * @return
	 * @throws ServiceException
	 */
	void updateOrderXianDanDate(Map map);
	
	/**
	 * 通过采购单明细Id或投料单采购单对应表查询
	* @date 2018年6月1日 下午5:27:49 
	* @author 李斌
	* @return List<PurchaseOrderBean> 
	* @throws
	 */
	List<PurchaseDetailBean> getPurchaseOrderByDetailOrOrderDetailId(Map<String, Object> map);
	
	/**
	 * 获取采购单制单人id
	* @date 2018年6月2日 下午1:28:32 
	* @author 李斌
	* @return List<String>   
	* @throws 
	 */  
	List<String> getPurchaseCreateIdByIds(Map<String, Object> map);
	//获取单个
	String getPurchaseCreateIdById(Map<String, Object> map);
	
	//修改库存占用数
	void updateCompanyMaterialByUseCount(Map<String, Object> purchaseMap);

	String getFeedOrderCreateId(Map map);
	//获取采购单明细
	PurchaseOrderDetailBean getPurchaseOrderDetailById(Map map);
	
	//获取采购单中的所有公司名称
	List<String> getCompanyNameByPurchase();

	OrderInfoDetailBean getOrderInfoDetailByDetailMap(Map<String, Object> map);
	
	//获取物料信息.用于投料单领料
	List<FeedOrderDetailBean> getCompanyMaterialTableByFeedWarehouse(Map map);
	/**
	 * 通过订单明细获取订单信息
	* @date 2018年6月12日 上午8:30:38 
	* @author 李斌
	* @return OrderInfoDetailBean 
	* @throws
	 */
	OrderInfoDetailBean getOrderInfoDetailByOrderDetail(Map<String, Object> map);
	/**
	 * 更新投料单的物料代码
	* @date 2018年6月12日 上午9:00:53 
	* @author 李斌
	* @return void 
	* @throws
	 */
	void updateFeedDetailByMaterial(FeedOrderDetailBean feedOrderDetailBean);
 
	int udpatePurchaseOrderDetailByStatus(Map map);

	int updatePurchaseDetailByStatus(Map map);
 
	int updatePurchaseOrderByStatus(Map map);
	
	/**
	 * 获取订单集合
	* @date 2018年6月19日 下午2:49:29 
	* @author 李斌
	* @return List<String> 
	* @throws 
	 */
	List<String> getFactoryNoByOrderId(Map<String, Object> map);
	/**
	 * 通过采购单明细id获取投料单明细
	* @date 2018年6月29日 上午10:31:52 
	* @author 李斌
	* @return FeedOrderDetailBean 
	* @throws
	 */
	List<FeedOrderDetailBean> getFeedOrderDetailByPurchaseFeedDetailId(Map<String, Object> purchaseMap);
	
	//通过投料单查询采购投料采购对应表id 
	String getPurchaseDetailIdByFeedDetailId(Map<String, Object> feedUseCountMap);
	/**
	 * 通过订单编号和行号获取订单信息
	* @date 2018年7月25日 下午2:56:33 
	* @author 李斌
	* @return List<OrderInfoDetailBean> 
	* @throws
	 */
	List<OrderInfoDetailBean> getOrderInfoDetailByOrderIdAndLineNo(Map map);
	/**
	 * 校验订单物料的投料数是否改变
	* @date 2018年7月27日 上午9:17:34 
	* @author 李斌
	* @return List<OrderInfoDetailSourceAndApplyBean> 
	* @throws
	 */
	List<OrderInfoDetailSourceAndApplyBean> getOrderInfoDetailSourceAndApply(Map<String, Object> map);
	
	/**
	 * 获取订单修改记录id
	* @date 2018年7月27日 上午9:25:39 
	* @author 李斌
	* @return String 
	* @throws
	 */
	String getApplyIdByOrderId(Map<String, Object> map);

	/**
	 * 获取已经拖期的订单
	 * @param companyName 
	 * @param i 
	 * @return
	 */
	List<ProductionExceptionBean> getOrderTimerDelaySendMessage(@Param("companyName")String companyName,@Param("type") int type);

	/**
	 * 获取订单审核图片
	 * @param request
	 * @param orderId(订单编号)
	 * @return
	 * @throws ServiceException
	 */
	String getOrderApprovalImg(Map<String, Object> map);

	/**
	 * 通过采购单对应表id查询原料仓出入库明细
	* @date 2018年8月9日 上午8:08:52 
	* @author 李斌
	* @return List<WarehouseInOutDetailBean> 
	* @throws
	 */
	List<WarehouseInOutDetailBean> getWarehouseInOutDetailByPurchaseOrderDetailId(Map<String, Object> map);
	
	//通过投料单明细id获取订单编号
	String getOrderIdByFeedDetailId(String feedDetailId);
	//通过投料单明细id获取采购单对应表
	PurchaseOrderDetailBean getPurchaseOrderDetailByFeedDetailId(Map<String, Object> map);
	//通过采购单对应表明细信息获取采购单对应表信息
	List<PurchaseOrderDetailBean> getPurchaseOrderDetailByMap(Map<String, Object> queryMap);
	
	/**
	 * 获取订单已经生产的车间
	 * @param orderId(订单编号)
	 * @param map
	 * @return
	 */
	List<ReportBean> getAleradyProcedureWorkShop(@Param("orderList")List<OrderBean> orderList);

	/**
	 * 获取部门所有车间的加工对象
	 * @param deptId
	 * @return
	 */
	List<WorkshopProductionCycleBean> getDeptWorkShopProcessingObject(Map map);
	
	/**
	 * 获取一周内需要结算的采购单入库单
	* @date 2018年8月13日 上午10:02:03 
	* @author 李斌
	* @return List<WarehouseInOutDetailBean> 
	* @throws
	 */
	List<WarehouseInOutDetailBean> getWarehouseInDetailByScheduleJob();
	/**
	 * 获取订单物料报工情况
	 * @param orderId(订单编号)
	 * @return
	 * @throws ServiceException
	 */
	List<ReportBean> getOrderMaterialReport(Map map);
	

	/**
	 * 获取订单在车间入库数量
	 * @param orderId
	 * @param workShopId
	 * @param rowIndex
	 * @return
	 */
	List<ReportBean> getWorkShopInMaterial(@Param("orderList")List<OrderBean> orderList);
	/**
	 * 获取车间所有交接入库的对象
	 * @param orderId
	 * @param workshopNameValue
	 * @return
	 */
	List<OrderColorBean> getWorkShopAllMaterial(@Param("orderId")String orderId,@Param("workshopNameValue") String workshopNameValue);
	
	/**
	 * 清除投料单生产单位占用数
	* @date 2018年9月21日 上午9:26:28 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int updateProductionFeedCount(FeedOrderDetailBean feedOrderDetailBean);
	
	/**
	 * 通过订单明细获取投料单(退回的)
	* @date 2018年9月29日 下午1:32:00 
	* @author 李斌
	* @return List<FeedOrderDetailBean> 
	* @throws
	 */
	List<FeedOrderDetailBean> getFeedOrderDetailByOrderDetail(Map<String, Object> map);
	
	/**
	 * 通过投料单id获取已出库的物料
	* @date 2018年9月29日 下午2:35:06 
	* @author 李斌
	* @return List<WarehouseInOutDetailBean> 
	* @throws
	 */
	List<WarehouseInOutDetailBean> getReturnFeedOrderOnOutWarehouseCount(Map<String, Object> map);
	
	/**
	 * 更改出入库记录的feedOrder 类型为2的
	* @date 2018年9月30日 上午9:04:46 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int updateWarehouseFeedOrderByIds(Map<String, Object> returnFeedOrderOutCountMap);
	
	/**
	 * 获取投料单出库未审核的
	* @date 2018年9月30日 上午9:29:00 
	* @author 李斌
	* @return List<WarehouseInOutDetailBean> 
	* @throws
	 */
	List<WarehouseInOutDetailBean> getWarehouseOutNoApprovalByFeedDetailId(Map<String, Object> map);

	
	/**
	 * 获取订单查询页面的明细记录
	 * @param timeType(查询的时间类型,1制单时间 2交货日期)
	 * @param startDate(开始时间)
	 * @param date (结束时间)
	 * @param deptId(部门id)
	 * @param workShop (车间id)
	 * @param type (2 未完成 1 已完成)
	 * @param dutyStatus (拖期状态  1 拖期  2 即将拖期 )
	 * @param customerId (客户型号)
	 * @param customer (客户)
	 * @param companyOrderId (公司订单编号)
	 * @param factoryId (工厂型号)
	 * @param start(分页参数)
	 * @param length (分页参数)
	 * @param map
	 * @return
	 */
	List<OrderBean> queryOrderPageDateil(Map map);
	OrderCountBean queryOrderPageDateilCount(Map map);

	/**
	 * 获取订单样式五的物料
	 * @param orderList(订单集合，只取订单编号)
	 * @return
	 */
	List<OrderMaterial> getOrderStyleFiveMaterial(@Param("orderList")List<OrderBean> orderList);

	/**
	 * 通过订单编号获取报工情况，用于配料
	 * @param orderList
	 * @return
	 */
	List<ReportBean> getOrderReportDeatilUserMixByOrderList(@Param("orderList")List<OrderBean> orderList);

	/**
	 * 通过订单编号获取订单采购详情
	 * @param orderList
	 * @return
	 */
	List<PurchaseOrderBean> getOrdrMaterialPurchase(@Param("orderList")List<OrderBean> orderList);

	/**
	 * 获取订单类型
	 * @param map
	 * @return
	 */
	List<String> getOrderType(Map map);

	/**
	 * 半架修改
	 * 获取订单单个物料的报工信息
	 * @param orderId
	 * @param machining
	 * @param reportMachining
	 * @param isAllMaterial
	 * @return
	 */
	List<OrderColorBean> getOrderOneReportMaterialColor(@Param("orderId")String orderId, @Param("machining")String machining,@Param("reportMachining") String reportMachining,@Param("isAllMaterial") int isAllMaterial);

	/**
	 * 半架修改
	 * 获取订单整报物料
	 * @param orderId
	 * @param reportMachining 
	 * @return
	 */
	List<OrderColorBean> getOrderAllReportMaterialColor(@Param("orderId")String orderId, @Param("reportMachining")String reportMachining);

	/**
	 * 获取订单车间入库物料
	 * @param orderId
	 * @param maList 
	 * @param reportMachining 
	 * @return
	 */
	List<OrderColorBean> getWorkShopAllReportMaterial(@Param("orderId")String orderId,@Param("reportMachining") String reportMachining);

	/**
	 * 获取普通半架报工物料
	 * @param orderId
	 * @param machining
	 * @param reportMachining
	 * @return
	 */
	List<OrderColorBean> getOrderHalfMaterial(@Param("orderId")String orderId, @Param("machining")String machining, @Param("reportMachining")String reportMachining);

	/**
	 * 订单查询
	 * @param orderList
	 * @return
	 */
	List<QueryOrderPageBean> getOrderInfoDetailAll(@Param("orderList")List<OrderBean> orderList);

	/**
	 * 获取订单明细详情
	 * @param orderList
	 * @return
	 */
	List<OrderDeatilBean> getOrderInfoDetailByOrderList(@Param("orderList")List<OrderBean> orderList);

	/**
	 * 报工获取颜色时，行物料已报工数
	 * @param returnList
	 * @param procedureVal
	 * @param orderId 
	 * @return
	 */
	List<OrderColorBean> getOrderColorMaterialAleradyReport(@Param("returnList")List<OrderColorBean> returnList,@Param("procedureVal") String procedureVal,@Param("orderId") String orderId);

	/**
	 * 获取车间已报工物料
	 * @param orderId
	 * @param workshopName
	 * @return
	 */
	List<MaterialTreeBean> getWorkShopAleradyReportMaterialList(@Param("orderId")String orderId, @Param("workshopName")String workshopName);

	/**
	 * 获取车间附加物料信息
	 * @param orderId
	 * @param workshopNameValue
	 * @return
	 */
	List<ReportBean> getWorkAdditionalMaterialTypeList(@Param("orderId")String orderId,@Param("workshopNameValue") String workshopNameValue);

	/**
	 * 订单设置完成
	 * @param map
	 */
	void updateOrderSortByFinish(Map map);

	/**
	 * 获取订单工序已经报工的对象
	 * @param orderId
	 * @param procedureId
	 * @return
	 */
	String getOrderAleradyReportMaterial(@Param("orderId")String orderId,@Param("procedureId") String procedureId);

	/**
	 * 获取订单信息
	 * @param map
	 * @return
	 */
	List<OrderBean> getCompanyOrder(Map map);

	
	
	/**
	 * 获取配套看板主要信息
	 * @param map
	 * @return
	 */
    List<OrderMaterial> getOrderMatchingMain(Map map);
	 
	  
	      
  


	

}
